var m_PlanID =null; // 计划单主键
var m_OrderdetailidB=null;

//初始化
$(function () {

    // $('#A').window('close');  // close a window
    //获取所有下拉的data
    getdropdownDataB();

    // $("#localname").textbox('setValue', localname);
    // $("#billcodeDate").datebox("setValue", getDay(0));

    setsizeB();

    addplanB();

    SetPlanDetail();

    getPlanDetailNow()

});

function SetPlanDetail() {
    $('#plandetail').edatagrid({
        data: [],
        title:'本日已开计划：',
        singleSelect :true,   //如果为true，则只允许选择一行
        rownumbers:true,     //显示行号
        striped: true,
        fit: true,
        // autoSave: true,
        sortable: true,
        remoteSort: false,
        showFooter: true,
        // height: 'auto',
        columns: [[
            {field: 'iid', title: '计划主键', hidden: true, width: 50},
            {field: 'parent_id', title: '订单明细主键', hidden: true, width: 50},
            {field: 'bill_code', title: '计划单号', halign: 'center', align: 'center', width: 100},
            {field: 'client_name', title: '客户', halign: 'center', align: 'center', width: 90},
            {field: 'product_sid', title: '品名', halign: 'center', align: 'center', width: 150},
            {field: 'color', title: '颜色', halign: 'center', align: 'center', width: 84},
            // {field: 'color_code', title: '色号', halign: 'center', align: 'center', width: 84},
            // {
            //     field: 'color_code',
            //     title: '色块',
            //     halign: 'center',
            //     styler: colorStylerFormatter,
            //     align: 'center', width: 50
            // },
            // {field: 'amount', title: '件数', halign: 'center', align: 'right', width: 50},
            {field: 'price', title: '单价', halign: 'center', align: 'right', width: 50},
            {field: 'kilo', title: '重量', halign: 'center', align: 'right', width: 100,
                formatter:function(value,rec){undefined
                    return rec.kilo>0?parseFloat(rec.kilo).toFixed(1):'';}},
            // {field: 'state', checkbox: true, width: 50}
            // {field: 'print_count', title: '打印数', halign: 'center', align: 'center', width: 50},
            {field: 'remark', title: '备注', halign: 'center', align: 'center', width: 150},

        ]],
        onLoadSuccess: function (data) {
            computeB();
            $(this).datagrid('resize');
        },
        onSave: function (index, row) {
            computeB();
        },
        onSelect: function (i, d) {

        },
        onDblClickRow: function (index, row) {
            //双击事件
            openPlanNow(row.parent_id,row.iid,)

        }
    });
}

//获取本日生产计划单数据
function getPlanDetailNow() {

    $.ajax({
        url: strLin + 'dynamicQuery/callProc',
        type: 'POST',
        dataType: 'json',
        data: JSON.stringify(['usp_getPlandetailNow']),
        contentType: "application/json;charset=UTF-8",
        success: function (cdata) {
            let  data=cdata.data;
            console.log(data)
            $('#plandetail').datagrid('loadData',data);
            computeB()
        }, complete: function (XMLHttpRequest, textStatus) {
            console.log("进入到complete");
        }

    })
}

//合计
function computeB() {
    let rows = $("#plandetail").edatagrid("getRows");
    let number = 0, qty = 0, total = 0, meter = 0, kilo = 0;
    for (let i = 0; i < rows.length; i++) {
        // number += parseFloat(rows[i].amount ? rows[i].amount : 0);
        qty += parseFloat(rows[i].kilo ? rows[i].kilo : 0);

    }
    $("#plandetail").edatagrid('reloadFooter', [
        {
            order_code: '合计',
            // amount: number.toFixed(0),
            kilo: qty.toFixed(1),
        }
    ]);
}

//保存前的判断  SaveJudge
function saveB() {
    var m_planqty = $("#planqtyB").textbox('getValue');
    if (checkRate(m_planqty)===false){$.messager.alert('提示','请输入正确的公斤数！');return;}
    if (m_planqty.length <= 0) {$.messager.alert('提示','计划重量为空，不允许保存！');return;}

    if (m_PlanID>0){
        SaveJudge();
    }else {
        $.ajax({
            url: strLin + 'dynamicQuery/querySqlString/select sum(kilo)kilo from plan where state=1 and parent_id=' + m_OrderdetailidB,
            type: 'get',
            dataType: 'json',
            contentType: "application/json;charset=UTF-8",
            success: function (data) {
                console.log('获取订单生成计划的总数');
                if ((data.data[0].kilo > 0 ? data.data[0].kilo : 0) > 0) {
                    var plankilo = data.data[0].kilo;
                    $.ajax({
                        url: strLin + 'dynamicQuery/querySqlString/select kilo from order_detail where iid=' + m_OrderdetailidB,
                        type: 'get',
                        dataType: 'json',
                        contentType: "application/json;charset=UTF-8",
                        success: function (cdata) {
                            if (parseFloat(plankilo) + parseFloat(m_planqty) > parseFloat(cdata.data[0].kilo)) {
                                $.messager.defaults = {ok: "确定", cancel: "取消", width: 300, closable: false};
                                $.messager.confirm('确认', '计划单总数超过订单数，是否继续保存？', function (r) {
                                    if (r) {
                                        SaveJudge();
                                    }
                                });
                            } else {
                                SaveJudge();
                            }
                        }
                    })
                } else {
                    SaveJudge();
                }
            }
        });
    }
}

//保存  OK saveB
function SaveJudge() {
    var etime = new Date();
    var m_date = format(etime);
    var m_billdate= $('#billcodeDateB').datebox('getValue') + ' ' +getnewdatetime(etime);
    // var m_delivery_date = $('#deliverydateB').datebox('getValue')
    console.log(m_date);
    console.log(m_date.substring(m_date.length-8,m_date.length));
    console.log(m_date.substring(0,10));

    var m_ddh = $("#ddhB").textbox('getValue');
    var m_khname = $("#clientNameB").combobox('getText');
    var m_khid = $("#clientNameB").combobox('getValue');
    var m_pm = $("#pmB").combobox('getText');
    var m_color = $("#colorNameB").textbox('getValue');
    // var m_colorcode = $("#colorcode").textbox('getValue');
    // var m_colorcode = $("#colorcode").color('getValue');

    var m_priceB = $("#priceB").textbox('getValue');
    var m_planqty = $("#planqtyB").textbox('getValue');
    var m_memo = $("#memoB").textbox('getValue');


    if (checkRate(m_planqty)===false){$.messager.alert('提示','请输入正确的公斤数！');return;}
    if (m_pm.length <= 0) {$.messager.alert('提示','品名为空，不允许保存！');return;}
    if (m_khname.length <= 0) {$.messager.alert('提示','客户为空，不允许保存！');return;}
    if (m_planqty.length <= 0) {$.messager.alert('提示','计划重量为空，不允许保存！');return;}

    //主键为空时新增
    if (m_PlanID==null) {
        var SQLstr={
            "parent_id": m_OrderdetailidB,
            "bill_date": m_billdate,
            "order_code": m_ddh,
            "product_sid": m_pm,
            "client_name": m_khname,
            "client_sid": m_khid,
            "color": m_color,
            // "amount": m_ps,
            "price":m_priceB,
            "kilo": m_planqty,
            "remark": m_memo
            // "color_code":m_colorcode
            // "delivery_date":m_delivery_date
        };

        console.log(SQLstr);
        $.ajax({
            url: strLin + 'plan/insertSelective',
            type: 'POST',
            dataType: 'json',
            data: JSON.stringify(SQLstr),
            contentType: "application/json;charset=UTF-8",
            success: function (data) {
                console.log('保存成功data');
                console.log(data);
                m_PlanID=data.data.iid;
                console.log("m_PlanID= " + m_PlanID)
                $.messager.alert('提示','保存成功！')
                // getplanIDA();
                // closeButtonB();
                setStatusB(1);
                settext(1);
                getPlanDetailNow();
                $("#planbillcode").textbox('setValue',data.data.bill_code);
                $("#savedB").show();
                $("#auditedB").hide();
                $("#invalidB").hide();
                refresh();
            }
        });
    }else {
        //修改
        var str ={
            // "bill_date": m_billdate,
            "iid":m_PlanID,
            "order_code": m_ddh,
            "product_sid": m_pm,
            "client_name": m_khname,
            "client_sid": m_khid,
            "color": m_color,
            // "amount": m_ps,
            "price":m_priceB,
            "kilo": m_planqty,
            "remark": m_memo
            // "color_code":m_colorcode,
            // "delivery_date":m_delivery_date
        };

        console.log(str);
        $.ajax({
            url: strLin + 'plan/updateByPrimaryKeySelective',
            type: 'POST',
            dataType: 'json',
            data: JSON.stringify(str),
            contentType: "application/json;charset=UTF-8",
            success: function (data) {
                console.log('修改成功data');
                $.messager.alert('提示','修改保存成功！');
                setStatusB(1);
                settext(1);
                getPlanDetailNow();
                $("#savedB").show();
                $("#auditedB").hide();
                $("#invalidB").hide();
                refresh();
            }
        });
    }

}


//修改计划单 恢复按钮和文本框为可用  OK
function updateplanB() {
    if (m_PlanID ==null) {
        return;
    }
    setStatusB(0);
    settext(0);
    $("#savedB").hide();
    $("#auditedB").hide();
    $("#invalidB").hide();

}

//新增计划单  把所有文本清空 选择订单新增
function addplanB(orderDetailid) {
    m_PlanID = null;
    m_OrderdetailidB=orderDetailid;
    setStatusB(0);
    clsartextB();  //初始化文本框和时间
    getPlanDetailNow();

    $.ajax({
        url: strLin + 'dynamicQuery/callProc',
        type: 'POST',
        dataType: 'json',
        data: JSON.stringify(['usp_getOrderdetail_id',orderDetailid]),
        contentType: "application/json;charset=UTF-8",
        success: function (cdata) {
            let data=cdata.data;
            console.log(data)
            // $("#billcodeDateB").datebox("setValue", data[0].bill_date);
            // $("#deliverydateB").datebox("setValue", data[0].delivery_date);
            //清空文本数据为空
            // $("#planbillcode").textbox('setValue',data[0].bill_code);
            $("#ddhB").textbox('setValue',data[0].order_code);
            $("#clientNameB").combobox('setValue', data[0].client_sid);
            $("#pmB").combobox('setValue', data[0].product_sid);
            $("#colorNameB").textbox('setValue', data[0].color);
            // $("#colorcode").textbox('setValue', data[0].color_code);
            $("#memoB").textbox('setValue', data[0].remark);
            // $("#psB").textbox('setValue', data[0].amount);
            $("#priceB").textbox('setValue', data[0].price);
            $("#planqtyB").textbox('setValue', data[0].kilo);
            //赋值之后设置不可用（不可修改）
            $("#billcodeDateB").textbox({disabled: true});
            // $("#deliverydateB").textbox({disabled: true});
            $("#planbillcode").textbox({disabled: true});
            $("#ddhB").textbox({disabled: true});
            $("#clientNameB").combobox("disable");
            $("#pmB").combobox("disable");
            $("#colorNameB").textbox({disabled: true});
            // $("#colorcode").textbox({disabled: true});

            settext(0);

        }
    });
    // openButtonB();
}

//打开计划单之后 新增事件
function copyplanB_N() {
    if (m_PlanID == null && m_OrderdetailidB==null) {
        $.messager.alert('提示','请打开有效单据!');
        return;
    }
    m_PlanID = null;

    setStatusB(0);
    settext(0);
    // $("#psB").textbox('setValue', '');
    $("#priceB").textbox('setValue', '');
    $("#planqtyB").textbox('setValue', '');
    $("#memoB").textbox('setValue', '');
    $("#planbillcode").textbox('setValue','');

    $("#savedB").hide();
    $("#auditedB").hide();
    $("#invalidB").hide();
}

//复制计划单  OK
function copyplanB() {
    if (m_PlanID == null && m_OrderdetailidB==null) {
        $.messager.alert('提示','请打开有效单据，在进行复制！');
        return;
    }
    m_PlanID = null;
    $("#billcodeDateB").datebox("setValue", getDay(0));
    $("#planbillcode").textbox('setValue','');
    setStatusB(0);
    settext(0);

    $("#savedB").hide();
    $("#auditedB").hide();
    $("#invalidB").hide();
}

//删除当前单据  OK
function deleteplanB() {
    $.messager.defaults = {ok: "确定", cancel: "取消", width: 300, closable: false};
    $.messager.confirm('确认', '您确认要作废    当前单据吗？', function (r) {
        if (r) {

            $('#D').window('open');

        }
    });


}

//打开当前选中的计划单
function openPlanNow(orderDetailid,planId) {
    m_PlanID = planId;
    m_OrderdetailidB=orderDetailid;
    setStatusB(1);
    clsartextB();  //初始化文本框和时间

    $.ajax({
        url: strLin + 'dynamicQuery/callProc',
        type: 'POST',
        dataType: 'json',
        data: JSON.stringify(['usp_getPlandetail_id',m_PlanID]),
        contentType: "application/json;charset=UTF-8",
        success: function (cdata) {
            let data=cdata.data;
            console.log(data)
            $("#billcodeDateB").datebox("setValue", data[0].bill_date);
            // $("#deliverydateB").datebox("setValue", data[0].delivery_date);
            //清空文本数据为空
            $("#planbillcode").textbox('setValue',data[0].bill_code);
            $("#ddhB").textbox('setValue',data[0].order_code);
            $("#clientNameB").combobox('setValue', data[0].client_sid);
            $("#pmB").combobox('setValue', data[0].product_sid);
            $("#colorNameB").textbox('setValue', data[0].color);
            // $("#colorcode").textbox('setValue', data[0].color_code);
            // $("#psB").textbox('setValue', data[0].amount);
            $("#priceB").textbox('setValue', data[0].price);
            $("#planqtyB").textbox('setValue', data[0].kilo);
            $("#memoB").textbox('setValue', data[0].remark);
            //赋值之后设置不可用（不可修改）
            $("#billcodeDateB").textbox({disabled: true});
            // $("#deliverydateB").textbox({disabled: true});
            $("#ddhB").textbox({disabled: true});
            $("#clientNameB").combobox("disable");
            $("#pmB").combobox("disable");
            $("#colorNameB").textbox({disabled: true});
            // $("#colorcode").textbox({disabled: true});

            settext(1);
            $("#savedB").show();
            $("#auditedB").hide();
            $("#invalidB").hide();

        }
    });
    // openButtonB();
}

//关闭当前标签页事件  OK
// function closeTab() {
// window.parent.closeTab();
// }

function closeTabB() {
    m_PlanID = null;
    m_OrderdetailidB=null;
    $('#B').window('close');  // close a window
}

/************************************************/
//清空所有文本内容
function clsartextB() {
    // $("#colornumberB").color('clear');
    $("#billcodeDateB").datebox("setValue", getDay(0))  ;
    // $("#deliverydateB").datebox("setValue", getDay(10));
    //清空文本数据为空

    $("#planbillcode").textbox('setValue','');
    $("#ddhB").textbox('setValue','');
    $("#clientNameB").combobox('setValue', '');
    $("#clientNameB").combobox('setText', '');
    $("#pmB").combobox('setValue', '');
    $("#pmB").combobox('setText', '');

    $("#colorNameB").textbox('setValue', '');
    // $("#colorcode").textbox('setValue', '');

    $("#priceB").textbox('setValue', '');
    $("#planqtyB").textbox('setValue', '');
    $("#memoB").textbox('setValue', '');

    $("#savedB").hide();
    $("#auditedB").hide();
    $("#invalidB").hide();
}

//保存之后设置保存按钮为灰色不可用
function closeButtonB() {
    $('#saveplanB').linkbutton('disable');
    //$('#saveplan').linkbutton('enable'); 取消灰色恢复可用

    $("#ddhB").textbox({disabled: true});
    $("#clientNameB").combobox("disable");
    $("#pmB").combobox("disable");
    $("#colorNameB").textbox({disabled: true});

    $("#priceB").textbox({disabled: true});
    $("#planqtyB").textbox({disabled: true});
    $("#memoB").textbox({disabled: true});

    setsizeB();
}


//打开所有按钮和文本可用
function openButtonB() {
    $('#saveplanB').linkbutton('enable');  //取消灰色恢复可用

    $("#ddhB").textbox({disabled: false});
    $("#clientNameB").combobox("enable");
    $("#pmB").combobox("enable");

    $("#colorNameB").textbox({disabled: false});
    $("#priceB").textbox({disabled: false});
    $("#planqtyB").textbox({disabled: false});
    $("#memoB").textbox({disabled: false});

    setsizeB();
}

//设置唯一可录入值的文本框的可用不可用事件
function settext(vNuber) {
        $("#priceB").textbox({disabled: vNuber});
        $("#planqtyB").textbox({disabled: vNuber});
        $("#memoB").textbox({disabled: vNuber});
}

/***************************************************/
//设置所有下拉数据
function getdropdownDataB() {
    //设置客户下拉
    console.log(strLin + 'contact/selectAll')
    $.ajax({
        url: strLin + 'contact/selectAll',
        type: 'get',
        dataType: 'json',
        success: function (cdata) {
            $('#clientNameB').combobox({
                valueField: 'sid',
                textField: 'sname',
                data:cdata.data
            });
        }
    });
    //设置品名下拉
    $.ajax({
        url: strLin + 'product/selectAll',
        type: 'get',
        dataType: 'json',
        success: function (cdata) {
            $('#pmB').combobox({
                valueField: 'sid',
                textField: 'sid',
                data:cdata.data
            });
        }
    });

}

//设置字体大小
function setsizeB() {
    $("#billcodeDateB").textbox('textbox').css("font-size", "15px");
    $("#ddhB").textbox('textbox').css("font-size", "15px");
    $("#clientNameB").combobox('textbox').css("font-size", "15px");
    $("#pmB").combobox('textbox').css("font-size", "15px");
    $("#colorNameB").textbox('textbox').css("font-size", "15px");
    $("#priceB").textbox('textbox').css("font-size", "15px");
    $("#planqtyB").textbox('textbox').css("font-size", "15px");
    $("#memoB").textbox('textbox').css("font-size", "15px");
}

/*****************************************************/

/*设置时间格式*/
function add0(m) {
    return m < 10 ? '0' + m : m
}

function format(shijianchuo) {
    //shijianchuo是整数，否则要parseInt转换
    var time = new Date(shijianchuo);
    var y = time.getFullYear();
    var m = time.getMonth() + 1;
    var d = time.getDate();
    var h = time.getHours();
    var mm = time.getMinutes();
    var s = time.getSeconds();
    return y + '-' + add0(m) + '-' + add0(d) + ' ' + add0(h) + ':' + add0(mm) + ':' + add0(s);
}
//获取当前时间 不带日期
function getnewdatetime(shijianchuo) {
    //shijianchuo是整数，否则要parseInt转换
    var time = new Date(shijianchuo);
    var y = time.getFullYear();
    var m = time.getMonth() + 1;
    var d = time.getDate();
    var h = time.getHours();
    var mm = time.getMinutes();
    var s = time.getSeconds();
    return add0(h) + ':' + add0(mm) + ':' + add0(s);
}

/****************************************************/
function checkRate(input) {
    var re = /^[0-9]+.?[0-9]*/;//判断字符串是否为数字//判断正整数/[1−9]+[0−9]∗]∗/
    if (!re.test(input)) {
        // alert('请输入正确的公斤数');
        return false;
    }else
    {
        // alert('正确的数字');
        return true;}
}
function isNotANumber(inputData) {
    //isNaN(inputData)不能判断空串或一个空格
    //如果是一个空串或是一个空格，而isNaN是做为数字0进行处理的，而parseInt与parseFloat是返回一个错误消息，这个isNaN检查不严密而导致的。
    if (parseFloat(inputData).toString() == "NaN") {
        alert('请输入正确的数字');
        return false;
    } else {
        alert('正确的数字');
        return true;
    }
}
/**********************************************************/

//获取浏览器地址参数
function getUrlParam(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
    var r = window.location.search.substr(1).match(reg);  //匹配目标参数
    if (r != null) return unescape(r[2]);
    return null; //返回参数值
}

//获取浏览器地址参数（参数为中文）
function getRequest() {
    var url = window.location.search; //获取url中"?"符后的字串
    var theRequest = new Object();
    if (url.indexOf("?") != -1) {
        var str = url.substr(1);
        strs = str.split("&");
        for(var i = 0; i < strs.length; i ++) {
            //就是这句的问题
            theRequest[strs[i].split("=")[0]]=decodeURI(strs[i].split("=")[1]);
            //之前用了unescape()
            //才会出现乱码
        }
    }
    return theRequest;
}


function setStatusB(index) {
    let msg = {
        'tab0-1': ['新增出库', '领料退回', '盘点'],
        'tab1-1': ['原料退回', '领料退回'],
        'tab2-1': ['新增入库', '原料退回', '新增出库', '盘点'],
        'tab0': ['新增','修改','复制','打印','删除'],
        'tab1': ['保存'],
        'tab2': ['新增','修改','保存','复制','打印','删除'],
    };
    setTimeout(function () {
        $('#topB').find('a[class*="easyui-linkbutton"]').each(function (item, i) {
            let text = $(i).linkbutton('options').text;
            if (msg[`tab${index}`] == undefined) return false;
            if (msg[`tab${index}`].indexOf(text) > -1) {
                $(i).linkbutton('disable');
            } else {
                $(i).linkbutton('enable');
            }
        })
    }, 0);
}

//作废原因保存
function tovoidMemoSaveD() {
    let tovoidMemo=$("#tovoidMemoD").textbox('getValue');
    let pass=$("#passD").textbox('getValue');
    if (tovoidMemo==null || tovoidMemo=='' ||tovoidMemo== undefined){
        $.messager.defaults = {ok: "确定", width: 300, closable: false};
        $.messager.alert('提示','作废原因必输，为空不允许保存！')
        return;
    }
    if (pass==null || pass=='' ||pass== undefined){
        $.messager.defaults = {ok: "确定", width: 300, closable: false};
        $.messager.alert('提示','密码必输，为空不允许保存！')
        return;
    }

    //判断密码
    $.ajax({
        url: strLin + "dynamicQuery/querySqlString/select * from sys_user where username='"+ username + "' and password='" + pass + "'",
        type: 'get',
        dataType: 'json',
        success: function (cdata) {
            if (cdata.data.length>0){
                console.log('密码正确');

                let etime = new Date();
                let m_date = format(etime);
                let SQLstr={
                    "iid":m_PlanID,
                    "state": 0,
                    "nullify_time": m_date,
                    "nullify_remark":tovoidMemo
                };
                console.log(SQLstr);
                $.ajax({
                    url: strLin + 'plan/updateByPrimaryKeySelective',
                    type: 'POST',
                    dataType: 'json',
                    data: JSON.stringify(SQLstr),
                    contentType: "application/json;charset=UTF-8",
                    success: function (data) {
                        console.log(data);
                        $.messager.show({title: "提示", msg: "删除完成！"});
                        clsartextB();
                        setStatusB(2)
                        m_PlanID=null;
                        getPlanDetailNow();

                        $("#savedB").hide();
                        $("#auditedB").hide();
                        $("#invalidB").hide();

                        $('#D').window('close');
                        $("#tovoidMemoD").textbox("setValue", '');
                        $("#passD").textbox("setValue", '');
                    }
                });

            }else{
                $.messager.defaults = {ok: "确定", width: 300, closable: false};
                $.messager.alert('提示','密码错误！')
                $("#passD").textbox("setValue", '');
                return;
            }
        }
    });
}

//作废原因取消保存
function tovoidMemocancelD() {
    $('#D').window('close');
    $("#tovoidMemoD").textbox("setValue", '');
    $("#passD").textbox("setValue", '');
}


//打印计划单
function printplanbill() {
    console.log('打印计划单');
    if (m_PlanID!=null) {
        uopdateprintnumber(m_PlanID);
        var strurl = strLinprint + "ReportServer?reportlet=report_plan.cpt&billID=" + m_PlanID;
        // var strurl = "http://xdf206/zipperdye/ReportServer?reportlet=report_plan.cpt&billID=" + m_PlanID;
        window.open(strurl);
    }
}

//修改打印次数
function uopdateprintnumber(planid) {
    $.ajax({
        url: strLin + 'dynamicQuery/callProc',
        type: 'POST',
        dataType: 'json',
        data: JSON.stringify(['usp_updateplanprintcount',planid]),
        contentType: "application/json;charset=UTF-8",
        success: function (cdata) {
            //修改打印次数成功之后 刷新数据
            getPlanDetailNow()
        }

    });
}
